package com.example;

class BaseballException extends Exception{}
class Foul extends BaseballException{}
class Strike extends BaseballException{}

abstract class Inning{
    public Inning() throws BaseballException{}
    public void event() throws BaseballException{}
    public abstract void atBat() throws Foul,Strike;
    public void walk(){}
}

class StormException extends Exception{}
class RainedOut extends StormException{}
class PopFoul extends Foul{}

interface Storm{
    public void event() throws RainedOut;
    public void rainHard() throws RainedOut;
}
public class StormyInning extends Inning implements Storm{
    public StormyInning() throws BaseballException {
    }

    @Override
    public void event(){}

    @Override
    public void atBat() throws PopFoul{

    }

    @Override
    public void walk(){

    }

    @Override
    public void rainHard(){

    }
}
